#ifndef OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_CONF_H
#define OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_CONF_H
#include <cstdint>
#include <ostream>

namespace ock {
namespace conf {

const uint32_t MaxHMOIDNumberPerDevice = 1024U * 1024U;


struct OckHmmConf
{
    OckHmmConf(void);
    uint32_t maxHMOCountPerDevice;
    uint64_t defaultFragThreshold;
    uint64_t maxWaitTimeMilliSecond;
    uint64_t subMemoryLargerBaseSize;
    uint64_t subMemoryLargestBaseSize;
    uint64_t maxAllocHmoBytes;
    uint64_t minAllocHmoBytes;
    uint64_t maxMallocBytes;
    uint64_t minMallocBytes;
    uint64_t maxFragThreshold;
    uint64_t minFragThreshold;
    uint32_t maxMaxGapMilliSecond;
    uint32_t minMaxGapMilliSecond;
};

bool operator==(const OckHmmConf &lhs, const OckHmmConf &rhs);
bool operator!=(const OckHmmConf &lhs, const OckHmmConf &rhs);
std::ostream &operator<<(std::ostream &os, const OckHmmConf &conf);
}
}
#endif